import  pandas as pd
import  xlrd
import  matplotlib.pyplot as  plt
#导入数据
df = pd.read_excel('D:/dataset/三次产业贡献率.xls', header=1)
#获取数值
contribution_rate = df.iloc[0:5,1:6]
x1 = contribution_rate.iloc[0]
x = [int(x2[0:4]) for x2 in x1]
y1 = contribution_rate.iloc[4]
y2 = contribution_rate.iloc[3]
y3 = contribution_rate.iloc[2]
b1 = list(contribution_rate[3:5].sum(axis = 0))
#设置Matplotlib正常显示中文和负号
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#创建一个绘图对象，并设置对象的宽度和高度
fig = plt.figure(figsize=(6, 4))

p1 = plt.bar(x,y1,width=0.6,bottom=0,color='b')
p2 = plt.bar(x,y2,width=0.6,bottom=y1,color='r')
p3 = plt.bar(x,y3,width=0.6,bottom=b1,color='y')

for x_text,y_text in zip(x,y1):
    plt.text(x_text,y_text,'%.1f' % y_text,ha='center',va='bottom')
for x_text,y_text,z_text in zip(x,y2,y1):
    plt.text(x_text,y_text -4 + z_text,'%.1f' %y_text,ha='center',va='bottom')

plt.legend({'第三产业对GDP的贡献率':'b',
            '第二产业对GDP的贡献率':'b',
            '第一产业对GDP的贡献率':'y'},
            loc='lower center',ncol=1)

plt.plot(x,y1,"b--")
plt.plot(x,y2,"r-")
plt.plot(x,y3,"y-.")
plt.xlabel('年份')
plt.ylabel('三次产业贡献率')
plt.ylim(0,110)
plt.xlim(2015,2021)

plt.suptitle("2016-2020年我国三次产业贡献率")
plt.title("单位:%",fontsize=10,loc='right')
#添加脚注
fig.text(0.1,0.02, s="数据来源:国家统计局")
plt.savefig("d:/image/task4-28.png")
plt.show()
